﻿<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.example.org/a/" targetNamespace="http://www.example.org/a/">
  <element name="Namespace" type="tns:NamespaceType"></element>

  <complexType name="NamespaceType">
    <sequence>
      <element name="Import" type="tns:ImportType"></element>
      <element name="Class" type="tns:ClassType"></element>
      <element name="Comment" type="string"></element>
    </sequence>
    <attribute name="Name" type="string"></attribute>
  </complexType>

  <complexType name="ImportType">
    <sequence>
      <element name="Comment" type="string"></element>
    </sequence>
    <attribute name="Namespace" type="string"></attribute>
  </complexType>

  <complexType name="ClassType">
    <sequence>
      <element name="Constructor" type="tns:ConstructorType"></element>
      <element name="Method" type="tns:MethodType"></element>
    </sequence>
    <attribute name="Name" type="string"></attribute>
    <attribute name="Inherits" type="string"></attribute>
  </complexType>

  <complexType name="ScriptType">
    <sequence>
      <element name="file" type="string"></element>
      <element name="Namespace" type="tns:NamespaceType"></element>
      <element name="Comment" type="string"></element>
    </sequence>
  </complexType>

  <element name="Script" type="tns:ScriptType"></element>

  <complexType name="ConstructorType">
    <sequence>
      <element name="Comment" type="string"></element>
    </sequence>
    <attribute name="Name" type="string"></attribute>
    <attribute name="CreateParameterOfBase" type="boolean"></attribute>
  </complexType>

  <complexType name="MethodType">
    <sequence>
      <element name="Comment" type="string"></element>
    </sequence>
    <attribute name="Name" type="string"></attribute>
    <attribute name="BaseType" type="string"></attribute>
  </complexType>


  <complexType name="PameterType">
    <sequence></sequence>
    <attribute name="Name" type="string"></attribute>
    <attribute name="direction" type="string"></attribute>
    <attribute name="Type" type="string"></attribute>
  </complexType>

  <complexType name="NewComplexType">
    <choice></choice>
  </complexType>

  <complexType name="TypeType">
    <choice>
      <element name="Boolean" type="string"></element>
      <element name="Decimal" type="string"></element>
      <element name="String" type="string"></element>
      <element name="Integer" type="string"></element>
    </choice>

  </complexType>

  <complexType name="DirectionType">
    <choice>
      <element name="In" type="string"></element>
      <element name="Out" type="string"></element>
      <element name="Ref" type="string"></element>
    </choice>
  </complexType>
</schema>